var selectDevelopTypeId = 0;

function func_deleteContract() {
	var record = Ext.getCmp('contractGrid').getSelectionModel().getSelection()[0];
	var id = record.get('id');
	Ext.Msg.confirm('提示', '确认删除？', function(btn) {
		if (btn == 'yes') {
			Ext.Ajax.request({
				url : 'contract/deleteContractBriefly',
				params : {
					id : id
				},
				success : function(response, opts) {
					var obj = Ext.decode(response.responseText);
					if (obj.success == true) {
						Ext.data.StoreManager.lookup('contractStore').load();
						Ext.Msg.show({
							title : '成功',
							msg : '删除成功',
							buttons : Ext.Msg.OK,
							icon : Ext.Msg.INFO
						});
					} else {
						Ext.Msg.show({
							title : '错误',
							msg : '删除失败',
							buttons : Ext.Msg.OK,
							icon : Ext.Msg.ERROR
						});
					}
				},
				failure : function(response, opts) {
					Ext.Msg.show({
						title : '错误',
						msg : '服务器通信错误',
						buttons : Ext.Msg.OK,
						icon : Ext.Msg.ERROR
					});
				}
			})
		}
	});
}

function func_modifyContract() {
	var record = Ext.getCmp('contractGrid').getSelectionModel().getSelection()[0];
	var id = record.get('id');
	Ext.create('Ext.window.Window', {
		modal : true,
		title : '修改合同',
		height : 400,
		width : 600,
		maximizable : true,
		html : '<iframe frameborder="0" width="100%" height="100%" src="contract/modifyContractBrieflyView?id=' + id + '"></iframe>'
	}).show();
}

Ext.onReady(function() {

	// 开发类别树store
	var developTypeStore = Ext.create('Ext.data.TreeStore', {
		storeId : 'developTypeStore',
		autoLoad : true,
		proxy : {
			type : 'ajax',
			url : 'developProgress/listDevelopTypes',
			reader : {
				type : 'json',
				root : 'data'
			}
		},
		root : {
			text : '开发类别',
			id : 0,
			expanded : true
		},
		fields : [ 'id', {
			name : 'text',
			mapping : 'typeName'
		} ]
	});

	// 开发进度表store
	var developProgressStore = Ext.create('Ext.data.JsonStore', {
		storeId : 'developProgressStore',
		autoLoad : false,
		proxy : {
			type : 'ajax',
			url : 'developProgress/listDevelopProgressByDevelopType',
			extraParams : {
				developTypeId : selectDevelopTypeId
			},
			reader : {
				type : 'json',
				root : 'data',
				idProperty : 'id'
			}
		},
		fields : [ 'id', 'developType', 'cyph', 'mljq', 'cyjq', 'ctb', 'cqy', 'xpjs', 'mljc', 'hgz', 'txm', 'mlrkDate', 'mlrkQuantity', 'cyrkDate',
				'cyrkQuantity', 'mark' ],
		listeners : {
			beforeload : function(store) {
				Ext.apply(store.proxy.extraParams, {
					developTypeId : selectDevelopTypeId
				});
			}
		}
	});

	// 开发类别树
	var developTypeTree = Ext.create('Ext.tree.Panel', {
		region : 'west',
		width : 200,
		store : Ext.data.StoreManager.lookup('developTypeStore'),
		rootVisible : true,
		border : true,
		listeners : {
			itemclick : function(thiz, record) {
				developProgressGrid.setTitle(record.get('text'));
				selectDevelopTypeId = record.get('id');
				developProgressStore.load();
			}
		},
		dockedItems : [ {
			xtype : 'toolbar',
			items : [ {
				text : '新增类别',
				handler : function() {
					new Ext.window.Window({
						title : '新增类别',
						width : 300,
						height : 200,
						modal : true,
						items : [ {
							xtype : 'form',
							frame : true,
							style : {
								width : '95%',
								margin : '30 auto'
							},
							items : [ {
								name : 'typeName',
								xtype : 'textfield',
								fieldLabel : '开发类别',
								allowBlank : false,
								listeners : {
									blur : function(thiz) {
										thiz.setValue(thiz.getValue().trim());
									}
								}
							} ],
							buttonAlign : 'center',
							buttons : [ {
								formBind : true, // only enabled once the
								// form is valid
								disabled : true,
								text : '保存',
								handler : function() {
									this.up('form').getForm().submit({
										url : 'developProgress/addDevelopType',
										// *************************************
										// extjs根据action.result.success来判断是否是是服务端错误
										// true：执行success回调函数
										// false：执行failure回调函数的Ext.form.action.Action.SERVER_INVALID
										success : function(form, action) {
											Ext.Msg.show({
												title : '成功',
												msg : '新增完成',
												buttons : Ext.Msg.OK,
												icon : Ext.Msg.INFO
											});
											developTypeStore.load();
										},
										failure : function(form, action) {
											switch (action.failureType) {
											case Ext.form.action.Action.CLIENT_INVALID:
												Ext.Msg.alert('Failure', 'Form fields may not be submitted with invalid values');
												break;
											case Ext.form.action.Action.CONNECT_FAILURE:
												Ext.Msg.alert('Failure', 'Ajax communication failed');
												break;
											case Ext.form.action.Action.SERVER_INVALID:
												Ext.Msg.show({
													title : '错误',
													msg : action.result.message,
													buttons : Ext.Msg.OK,
													icon : Ext.Msg.ERROR
												});
											}
										}
									});
								}
							} ]
						} ]
					}).show();
				}
			}, {
				text : '刷新',
				handler : function() {
					developTypeTree.getRootNode().removeAll()
					developTypeTree.getStore().load();
				}
			} ]
		} ]
	});

	// 开发进度表
	var developProgressGrid = Ext.create('Ext.grid.Panel', {
		id : 'developProgressGrid',
		title : ' ',
		iconCls : 'grid',
		region : 'center',
		store : Ext.data.StoreManager.lookup('developProgressStore'),
		columns : [ {
			text : '成衣品号',
			dataIndex : 'cyph',
			width : 180
		}, {
			text : '面料交期',
			dataIndex : 'mljq',
			width : 150
		}, {
			text : '成衣交期',
			dataIndex : 'cyjq',
			width : 150,
			renderer : function(value) {
				alert(value);
				// return new Date(value).format('Y-m-d');
			}
		}, {
			text : '船头板',
			dataIndex : 'ctb',
			width : 150
		}, {
			text : '产前样',
			dataIndex : 'cqy',
			width : 150
		}, {
			text : '新品介绍',
			dataIndex : 'xpjs',
			width : 150
		}, {
			text : '面料检测',
			dataIndex : 'mljc',
			width : 100
		}, {
			text : '合格证',
			dataIndex : 'hgz',
			width : 100
		}, {
			text : '条形码',
			dataIndex : 'txm',
			width : 100
		}, {
			text : '面料入库日期',
			dataIndex : 'mlrkDate',
			width : 100
		}, {
			text : '面料入库数量',
			dataIndex : 'mlrkQuantity',
			width : 100
		}, {
			text : '成衣入库日期',
			dataIndex : 'cyrkDate',
			width : 100
		}, {
			text : '成衣入库数量',
			dataIndex : 'cyrkQuantity',
			width : 100
		}, {
			text : '备注',
			dataIndex : 'mark',
			width : 100
		}, {
			text : '操作',
			flex : 1,
			renderer : function() {
				var modifyContract = '<a href="javascript:void(0)" onclick="func_modifyContract()">修改</a>';
				var deleteContract = '<a href="javascript:void(0)" onclick="func_deleteContract()">删除</a>';
				return modifyContract + ' ' + deleteContract;
			}
		} ],
		dockedItems : [ {
			xtype : 'toolbar',
			dock : 'top',
			items : [ {
				text : '新增开发进度',
				icon : 'static/extjs/resources/fam/add.gif',
				handler : function() {
					if (selectDevelopTypeId == 0) {
						Ext.Msg.show({
							title : '错误',
							msg : '请选择开发类别',
							buttons : Ext.Msg.OK,
							icon : Ext.Msg.ERROR
						});
						return;
					}
					Ext.create('Ext.window.Window', {
						modal : true,
						title : '新增开发进度',
						height : 400,
						width : 600,
						maximizable : true,
						html : '<iframe frameborder="0" width="100%" height="100%" src="developProgress/addDevelopProgressView"></iframe>'
					}).show();
				}
			} ]
		}, {
			xtype : 'pagingtoolbar',
			store : Ext.data.StoreManager.lookup('contractStore'),
			dock : 'bottom',
			displayInfo : true
		} ]
	});

	Ext.create('Ext.container.Viewport', {
		layout : 'border',
		border : false,
		items : [ developTypeTree, developProgressGrid ],
		renderTo : Ext.getBody()
	});
});